/******************************************************************************
 * (C) Copyright 
 * FILE NAME:    driver_timer.h
 * DESCRIPTION:
 * 
 * DATE BEGUN:   
 * BY:        
 * PRODUCT NAME:
 * APPLICATION:
 * TARGET H/W:
 * DOC REF:
 *****************************************************************************
 */

#ifndef _DRIVER_TIMER_H_
#define _DRIVER_TIMER_H_

/*****************************************************************************
**  typedef
*****************************************************************************/
typedef enum
{
    Timer_BUS_8MHz = 0U,
    Timer_BUS_16MHz,

} Drv_TimerSel_E;

typedef enum
{
    PRESCALER_1  = 0U,
    PRESCALER_5  = 4U,
    PRESCALER_8  = 7U,
    PRESCALER_16 = 15U,
    PRESCALER_25 = 24U,
    PRESCALER_50 = 49U,
    PRESCALER_80 = 79U,
    
} Drv_Prescaler_E;


/*****************************************************************************
**#include 
*****************************************************************************/
#include "system.h"

/*****************************************************************************
** Constant Macro Definition
*****************************************************************************/


/*****************************************************************************
** System Macro Definition
*****************************************************************************/


/*****************************************************************************
** Action Macro Definition
*****************************************************************************/


/*****************************************************************************
** Config Macro Definition
*****************************************************************************/


/*****************************************************************************
** Task Macro Definition
*****************************************************************************/


/*****************************************************************************
** Variables
*****************************************************************************/
extern volatile UINT8 u8_timch0_cnt;
extern volatile UINT8 u8_timch0_task1m_flag;


/*****************************************************************************
** Constants
*****************************************************************************/


/*****************************************************************************
** Function prototypeseb
*****************************************************************************/
#pragma CODE_SEG __NEAR_SEG NON_BANKED 
 __interrupt  void Timer_ISR(void);
 __interrupt  void TimOverInt(void);
#pragma CODE_SEG DEFAULT 
/****************************************************************************/
/**
 * Function Name: drv_timerInit
 * Description: none
 *
 * Param:   none
 * Return:  TRUE  - Init Success
 *          FALSE - Init Failure
 * Author:  
 ****************************************************************************/
BOOL drv_timerInit( Drv_Prescaler_E e_prescaler );

/****************************************************************************/
/**
 * Function Name: void drv_timerEnable( void )
 * Description: Enable Timer
 *
 * Param:   none
 * Return:  none
 * Author:  2012/09/28, hui.pang create this function
 ****************************************************************************/
void drv_timerEnable( void );

/****************************************************************************/
/**
 * Function Name: void drv_timerDisable( void )
 * Description: Enable Timer
 *
 * Param:   none
 * Return:  none
 * Author: 
 ****************************************************************************/
void drv_timerDisable( void );

/*****************************************************************************
** other
*****************************************************************************/
 void sys_delayUs( UINT16 u16_us );

/****************************************************************************/

#endif	//_DRIVER_TIMER_H_

/*****************************************************************************
** End File
*****************************************************************************/

